package com.lxw.report.meta.query.queryer;

import com.lxw.report.engine.dataModel.column.SheetColumn;
import com.lxw.report.engine.dataModel.report.ReportColumn;
import com.lxw.report.engine.dataModel.report.ReportDataRow;
import com.lxw.report.engine.dataModel.report.ReportQueryParamItem;

import java.util.List;

/**
 * 报表查询器接口
 *
 * @author lxw
 */
public interface Queryer {
    /**
     * 从sql语句中解析出报表元数据列集合
     */
    List<SheetColumn> parseMetaDataColumns(String sqlText);

    /**
     * 从sql语句中解析出报表查询参数(如下拉列表参数）的列表项集合
     */
    List<ReportQueryParamItem> parseQueryParamItems(String sqlText);

    /**
     * 获取报表原始数据行集合
     */
    List<ReportDataRow> getReportDataRowsBySqlAndColumns(String sqlText,List<ReportColumn> dataReportColumnList);
}
